Джессика Ливингстон - Как все начиналось. Apple, PayPal, Yahoo! и еще 20 историй известных стартапов глазами их основателей
Еще во время обучения в колледже я смастерил «синюю коробку». Это устройство позволяло выполнять бесплатные телефонные звонки в другие города и страны. Стив Джобс, услышав об этом, предложил делать их на продажу. Теперь, когда я собрал видеотерминал, он снова сказал: «Есть один местный магазинчик, который покупает такие вещицы. Почему бы нам не сходить туда?» В результате мы продали несколько собранных терминалов, получивших название Apple I.
Я всегда мечтал о собственном компьютере. Еще учась в старших классах школы, я сказал отцу: «Когда‑нибудь у меня будет компьютер». Отец мне ответил, что он стоит как первоначальный взнос за дом. «Тогда я согласен жить в квартире», – заявил я. Я был твердо намерен реализовать свою мечту. У каждого человека есть определенные мотивы и ценности, определяющие то, чем он хочет заниматься в жизни. Они появляются еще в раннем возрасте. Например, в младших классах школы я решил стать школьным учителем и долгое время мечтал об этом. Но некоторые желания бывают настолько сильными, что вы готовы пожертвовать всем ради их исполнения.
До того момента я собирал все устройства бесплатно. А затем вдруг узнал о появлении микропроцессоров. Какое‑то время я не следил за миром электроники и компьютеров, поскольку занимался калькуляторами в компании Hewlett‑Packard. И внезапно открыл для себя микропроцессоры. Что это такое? Я принялся изучать их технические данные.
В то же время был основан клуб любителей собирать разные технические устройства у себя дома. По моему мнению, каждый из его членов мог бы стать предпринимателем. Однако, как выяснилось, лишь некоторые из ребят оказались настоящими инженерами‑проектировщиками, способными создавать новые устройства. То есть многим его членам нравилась электроника, но они не были истинными разработчиками.
Ливингстон. Этот клуб назывался Homebrew?
Возняк. Полное название клуба было Homebrew Computer Club. В нем состояло много программистов, не имеющих понятия об аппаратных средствах, но тем не менее занимающихся сборкой компьютеров. Я был сбит с толку. Они обошли меня, собирая небольшие дешевые компьютеры на основе микропроцессоров, а я об этом никогда не слышал и не принимал в этом участия. А ведь именно этим я хотел заниматься в жизни. За одну ночь я проанализировал, что представляет собой микропроцессор, и обнаружил, что он очень похож на мини‑компьютеры, которые я собирал еще в старших классах школы.
А затем я исследовал Altair – первый микрокомпьютер, который, по сути, нельзя было считать полноценным. Для меня компьютер – это нечто цельное, т. е. одно устройство. Еще в старшей школе я сказал отцу, что хочу ПК модели 4K Data General Nova. Что значит 4K? Это указывает на то, что в Data General Nova установлено 4 Кбайт оперативной памяти, то есть минимально необходимый ее объем для выполнения программ на языке программирования. Иными словами, компьютер гарантировал пользователю возможность писать приложения на Fortran или Basic, или любом другом языке и выполнять их. Компьютеры Altair, которые продавались по смехотворно низкой цене, по сути, представляли собой разрекламированный микропроцессор компании Intel и несколько чипов для преобразования напряжения. То есть в Altair объединили пару отдельных комплектующих, назвали их компьютером и заявили: «Теперь вы можете сами добавить все элементы, для совместной работы с которыми спроектирован микропроцессор». Вы можете добавить оперативную память, карты расширения для взаимодействия с телетайпом, длинный кабель для подключения к нему или просто купить телетайп за несколько тысяч долларов. К тому моменту, когда вы приобретете достаточный объем ОЗУ и все остальное, чтобы собрать компьютер, способный выполнять программы, ваши затраты окажутся совершенно неподъемными. Суммарная стоимость такого ПК составляла около 5 тыс. долл. А мы были простыми технарями, мечтающими обзавестись собственным компьютером, которым едва хватало денег на насущные нужды.
Кроме того, за пять лет до этого, в 1970 году я сам собрал компьютер аналогичного с Altair типа. Однако у меня не было микропроцессора. Вместо него я использовал набор микросхем. То есть я создал собственный небольшой процессор, который разместил на компактной плате размером 3×5 дюймов. На ней я установил переключатели, лампочки, и она выглядела как приборная панель в самолете. Я мог использовать эти переключатели, нажимать кнопки, передавать в память комбинации нулей и единиц и выполнять программы. Мой компьютер был практически аналогом компьютера Altair. Он имел такой же объем оперативной памяти (начальный объем составлял 256 байт). Кроме того, я мог проверить его работоспособность. И его я собрал на пять лет раньше появления Altair. Теперь же я увидел ПК на основе микропроцессора и понял, что его недостаточно. Нужно единое устройство, способное выполнять программы на языке программирования. Хотя модель Altair была очень близка к реализации этой задачи.
Я решил собрать собственный компьютер. Я всегда был убежден, что стоимость подобных устройств должна быть разумной. Однако мне требовалось как минимум 4 Кбайт ОЗУ. В 1975 году появилась динамическая оперативная память (DRAM) в виде модулей по 4 Кбайта. Впервые они стали стоить дешевле, чем память на магнитных сердечниках, которая до этого использовалась во всех компьютерах. Мир внезапно перешел на кремниевую оперативную память.
Все компьютеры того времени, а это Altair, Sphere, Polymorphic и Insight, проектировались недостаточно квалифицированными инженерами, вернее, не самыми лучшими представителями этой профессии. В процессе участвовали технические специалисты, которые могли посмотреть спецификацию конкретной оперативной памяти и сравнить ее с техническими данными микропроцессора. В последнем были каналы, именуемые «адрес», и в ОЗУ имелись такие каналы. Они просто соединяли их. Это было несложно, когда дело касалось статической оперативной памяти.
Динамическая оперативная память была дешевле статической в 2–4 раза. Она позволила вместо 32 микросхем статической памяти, необходимых для обработки компьютером команд, ограничиться только 8 микросхемами. Но для ее работы требовались схемы, обеспечивающие процессору доступ к каждой ячейке памяти каждую 1/2000 долю секунды, чтобы он мог считывать данные этой ячейки и либо записывать новые, либо стирать старые (т. е. нужно было постоянное обновление памяти). В динамической оперативной памяти (этот тип используется во всех современных ПК) каждый бит данных стирался за 1/2000 секунды, в случае если он не был прочитан и перезаписан. Это напоминает «стекание» электронов с анода каждую 1/2000 долю секунды.
Мне пришлось создать несколько дополнительных микросхем и немного поразмыслить, чтобы собрать компьютер. Но когда я это сделал, хвала Господу, у меня уже были элементы, читающие последовательность битов, кодирующих изображения для телевизионного экрана на моем терминале. Поэтому я сказал себе: «Я просто использую эти элементы для регулярного обновления данных в оперативной памяти (RAM)». В результате у микропроцессора был бы постоянный доступ к RAM, и адреса видеоданных хранились бы в ней, хотя и не для чтения видеоданных (тогда я еще использовал созданный ранее терминал, в котором была собственная память для хранения данных, отображаемых на экране). Однако эти элементы позволяли просто записывать данные в правильной последовательности, чтобы обновлять содержимое ячеек RAM. Мне пришлось немного потрудиться над компоновкой комплектующих, но в результате удалось собрать компьютер с использованием значительно меньшего количества микросхем. К тому же он был и меньших размеров, что впечатляло всех, кто его видел. Он обошелся дешевле и работал быстрее конкурирующих моделей. При правильном подходе к делу можно добиться сразу нескольких целей.
В конце 1960‑х выпускалось огромное количество разных мини‑компьютеров, но на всех устанавливались одинаковые микросхемы: 7400 микросхем с четырьмя вентилями на каждой (на ней находился сумматор, полусумматор или мультиплексор). Все поставщики рассуждали таким образом: «Давайте соберем компьютер. Как и во всех предыдущих моделях в нем будут использоваться машинные команды, которые позволяют добавить единицу в регистр, и будут применяться многочисленные регистры, данные из них можно будет передавать в память и по отношению к ним выполнять операции И, ИЛИ, а также исключающее ИЛИ». Производители составляли набор инструкций, обеспечивающий работу компьютера: «Если мы добавим в компьютер достаточно команд, то со временем они превратятся в операционную систему и языки программирования».
А затем появилась компания Data General со своим мини‑компьютером Nova, в котором вместо использования 50 команд для выполнения различных математических операций применялась всего одна из 16 битов: шесть единиц и шесть нулей. Пара этих единиц и нулей указывала, данные каких четырех регистров будут использоваться. Вторая пара битов относилась к применению других четырех регистров. Следующая пара указывала, требуется ли смещение или сдвиг результата (что эквивалентно умножению или делению на два в двоичной системе). Также существовали биты для определения необходимости переноса. То есть все 16 битов несли какую‑то смысловую нагрузку. Я все это внимательно изучил, самостоятельно воссоздавая на бумаге принципы работы компьютера Nova. При этом я выяснил, что два бита кодируют один из четырех регистров, поэтому отправил их на вход микросхемы 4‑входового мультиплексора. Мне не пришлось придумывать последовательность выполнения тех или иных операций. Я просто реализовал все с точки зрения логики. Три бита подавались на вход логической микросхемы, чтобы определить тип битовой операции (И, ИЛИ, исключающее ИЛИ), и еще один бит – в сумматор в качестве флага переноса. В результате этого усовершенствования в Nova осталось в два раза меньше микросхем, чем в других мини‑компьютерах, созданных компаниями Varian, Digital Equipment Corp. и Hewlett‑Packard (я сконструировал на бумаге их все). Я понял, что это только ему на пользу, поскольку лишь в этом случае возникает настоящая архитектура ПК.